// 用户信息数据
// createUserList: 此函数执行返回一个数组, 数组里面包含两个用户信息
function createUserList() {
  return [
    {
      userId: 1,
      avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
      username: 'admin',
      password: '111111',
      desc: '平台管理员',
      buttons: ['cuser.detail'],
      routes: ['home'],
      token: 'Admin Token',
    },
    {
      userId: 2,
      avatar: 'https://avatars1.githubusercontent.com/u/22588905?s=460&v=4',
      username: 'system',
      password: '111111',
      desc: '系统管理员',
      buttons: ['cuser.detail', 'cuser.user'],
      routes: ['home'],
      token: 'System Token',
    },
  ]
}

// 对外暴露一个数组：数组里面包含两个接口
// 登录假接口
// 获取用户信息的假接口
export default [
  // 用户登录接口
  {
    url: '/api/user/login', // 请求地址
    method: 'post', // 请求方式
    timeout: 100,
    response: ({ body }: { body: { username: string; password: string } }) => {
      // 获取请求体携带过来的用户名与密码
      const { username, password } = body
      // 调用获取用户信息函数, 用于判断是否有此用户
      const checkUser = createUserList().find(
        (item) => item.username === username && item.password === password,
      )
      if (!checkUser) {
        return {
          code: 201,
          data: null,
          message: '用户名或密码错误',
        }
      } else {
        // 如果有返回成功信息
        const { token } = checkUser
        return { code: 200, data: { token } }
      }
    },
  },

  // 获取用户信息
  {
    url: '/api/user/info',
    method: 'get',
    response: (request: { headers: { token: string } }) => {
      // 获取请求头携带的 token
      const token = request.headers.token
      // 调用获取用户信息函数, 用于判断是否有此用户
      const checkUser = createUserList().find((item) => item.token === token)
      if (!checkUser) {
        return {
          code: 201,
          data: { message: '获取用户信息失败' },
        }
      }

      // 如果有返回成功信息
      const { userId, username, avatar, desc, buttons, routes } = checkUser
      return {
        code: 200,
        data: { userId, username, avatar, desc, buttons, routes },
      }
    },
  },
]
